// store/user.js
import {
	defineStore
} from 'pinia'

// 定义并导出一个 store，第一个参数是唯一 id
export const useUserStore = defineStore('user', {
	// 状态（类似 Vuex 的 state）
	state: () => ({
		token: '',
		userInfo: {
			name: '',
			avatar: ''
		}
	}),

	// 计算属性（类似 Vuex 的 getters）
	getters: {
		// 带参数的 getter
		getTokenWithPrefix: (state) => (prefix) => {
			return prefix + state.token
		}
	},

	// 方法（类似 Vuex 的 actions，支持同步和异步）
	actions: {
		// 同步更新 token
		setToken(newToken) {
			this.token = newToken
		},

		// 异步更新用户信息（比如从接口获取）
		async fetchUserInfo() {
			try {
				// 模拟接口请求
				const res = await uni.request({
					url: '/api/user/info'
				})
				this.userInfo = res.data
			} catch (err) {
				console.error('获取用户信息失败', err)
			}
		}
	}
})